When a user requests a web page or other content page via a browser application, the user typically experiences a noticeable delay before the page is displayed. Various factors can contribute to this delay. These factors include, for example, (1) the speed of the wireless or wired connection between the user device and the Internet, (2) the location of, and load on, the origin server that hosts the page, (3) the size of the page, including any embedded graphics, (4) whether, and the extent to which, the page includes embedded objects that need to be separately retrieved (possibly from different domains) once the page's HTML has been loaded, (5) the complexity of the page's coding, including any scripts, and (6) the processing power of the user device. When the delay is significant (e.g., several seconds or more), the task of browsing can be frustrating for users.
Various methods exist for reducing the delay experienced by users. Some methods include the use of caching proxy servers, which store recently-retrieved versions of content and provide the content to users faster than origin servers due to their cache management algorithms, proximity to the user devices, and the like. Other methods of reducing the delay experienced by users include prefetching content based on users' requested schedules or previous content requests. For example, users may request certain content pages to be retrieved and stored locally on their devices at some predetermined time so that the users can later view the content offline. As another example, some browser applications prefetch, in the background, content linked from a requested page. If a user clicks or otherwise activates one of the links, the linked content can then be displayed faster than if the browser had to retrieve the content from a content server after the link activation.